Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose and test validator set precompiles #874

Merged
merged 19 commits into from
Sep 16, 2019
Merged

Conversation

m-chrzan
Copy link
Contributor

@m-chrzan m-chrzan commented Sep 6, 2019

Description

The sister celo-blockchain PR (celo-org/celo-blockchain#441) adds precompiles to access the current validator set:

  • 0xfa takes an index argument of type uint and returns the address of the indexth validator
  • 0xf9 returns the size of the current validator set

This PR exposes both precompiles as functions on the Validators contract (they require assembly to read the return value of a call) and adds e2e tests that verify that the precompiles are working correctly.

Other changes

Pass more gas to ganache and tell ganache to not check for max contract bytecode (Validators has grown beyond the old limit).

Tested

Geth e2e tests.

Related issues

Backwards compatibility

Requires deployment of new Validators smart contract (no storage layout changes).

@codecov
Copy link

codecov bot commented Sep 6, 2019

Codecov Report

Merging #874 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #874   +/-   ##
=======================================
  Coverage   66.92%   66.92%           
=======================================
  Files         252      252           
  Lines        7311     7311           
  Branches      482      482           
=======================================
  Hits         4893     4893           
  Misses       2329     2329           
  Partials       89       89
Flag Coverage Δ
#mobile 66.92% <ø> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 627872e...1bbf16b. Read the comment docs.

@asaj
Copy link
Contributor

asaj commented Sep 9, 2019

Tests appear to be failing

@asaj asaj assigned m-chrzan and unassigned asaj Sep 9, 2019
@@ -14,6 +14,8 @@ async function startGanache() {
network_id: network.network_id,
mnemonic: network.mnemonic,
gasPrice: network.gasPrice,
gasLimit: 7000000,
allowUnlimitedContractSize: true,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

check also devchain.ts

@mcortesi mcortesi removed their assignment Sep 13, 2019
@m-chrzan m-chrzan added the automerge Have PR merge automatically when checks pass label Sep 16, 2019
@ashishb ashishb merged commit ec7fbe6 into master Sep 16, 2019
@ashishb ashishb deleted the m-chrzan/validators-list branch September 16, 2019 21:10
aaronmgdr added a commit that referenced this pull request Sep 17, 2019
* master: (132 commits)
  [Wallet] Differentiate dollars and gold transactions (#1021)
  [wip] LinkedList cycle fix (#941)
  Fix slither issues (#572)
  [Wallet] Disable import wallet button when the backup phrase is not valid (#1012)
  Fix fixed fraction division underflow (#952)
  [CircleCI]Run protocol coverage once a day (#1018)
  Expose and test validator set precompiles (#874)
  [celotool] Fund Faucet accounts on network init (#990)
  Add Nexmo as a text provider for MX and US numbers (#1002)
  [CircleCI]Run protocol test with and without coverage (#991)
  Increase memory requests for Alfajores nodes (#966)
  [wallet]Select blockchain url based on testnet (#936)
  Pilot app config and ability to not show testnet banner (#1009)
  Add Linux onboarding steps and a TOC to SETUP.md (#1004)
  Add README-dev.md (#989)
  [Wallet] Exchange flow formatting fixes (#961)
  [celotool] Cleanup genesis block generation (#988)
  [celotool] Some ❤️. Clean up (#948)
  CeloCLI sorted list of Validator Groups should not include groups with zero votes (#907)
  [contractkit] Fix tests (#963)
  ...
aaronmgdr added a commit that referenced this pull request Sep 18, 2019
* master: (72 commits)
  Remove unused Reserve.burnToken function (#984)
  Persistent disks for transaction nodes (#1016)
  [Wallet] Differentiate dollars and gold transactions (#1021)
  [wip] LinkedList cycle fix (#941)
  Fix slither issues (#572)
  [Wallet] Disable import wallet button when the backup phrase is not valid (#1012)
  Fix fixed fraction division underflow (#952)
  [CircleCI]Run protocol coverage once a day (#1018)
  Expose and test validator set precompiles (#874)
  [celotool] Fund Faucet accounts on network init (#990)
  Add Nexmo as a text provider for MX and US numbers (#1002)
  [CircleCI]Run protocol test with and without coverage (#991)
  Increase memory requests for Alfajores nodes (#966)
  [wallet]Select blockchain url based on testnet (#936)
  Pilot app config and ability to not show testnet banner (#1009)
  Add Linux onboarding steps and a TOC to SETUP.md (#1004)
  Add README-dev.md (#989)
  [Wallet] Exchange flow formatting fixes (#961)
  [celotool] Cleanup genesis block generation (#988)
  [celotool] Some ❤️. Clean up (#948)
  ...

# Conflicts:
#	packages/web/src/header/Header.3.tsx
aaronmgdr added a commit that referenced this pull request Sep 18, 2019
* master: (38 commits)
  Remove unused Reserve.burnToken function (#984)
  Persistent disks for transaction nodes (#1016)
  [Wallet] Differentiate dollars and gold transactions (#1021)
  [wip] LinkedList cycle fix (#941)
  Fix slither issues (#572)
  [Wallet] Disable import wallet button when the backup phrase is not valid (#1012)
  Fix fixed fraction division underflow (#952)
  [CircleCI]Run protocol coverage once a day (#1018)
  Expose and test validator set precompiles (#874)
  [celotool] Fund Faucet accounts on network init (#990)
  Add Nexmo as a text provider for MX and US numbers (#1002)
  [CircleCI]Run protocol test with and without coverage (#991)
  Increase memory requests for Alfajores nodes (#966)
  [wallet]Select blockchain url based on testnet (#936)
  Pilot app config and ability to not show testnet banner (#1009)
  Add Linux onboarding steps and a TOC to SETUP.md (#1004)
  Add README-dev.md (#989)
  [Wallet] Exchange flow formatting fixes (#961)
  [celotool] Cleanup genesis block generation (#988)
  [celotool] Some ❤️. Clean up (#948)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge Have PR merge automatically when checks pass
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Attestations SBAT access current validator set
5 participants